home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / PCTV3N3 / STAKSTUF.SRC < prev    next >
Text File  |  1992-06-16  |  754b  |  31 lines

  1. type
  2.   PLowData = ^TLowData;
  3.   TLowData = record      {Data structure stored by TP at DSeg:10}
  4.     pStackTop : Word;    {Lowest allowable offset for the stack}
  5.     pStackBot : Word;    {Highest offset for the stack}
  6.     pStackMin : Word;    {Lowest detected value of SP}
  7.   end;
  8.  
  9. procedure FillStack;
  10. var P : PLowData;
  11. begin
  12.   P := Ptr(DSeg, 10);
  13.   FillChar(Mem[SSeg:P^.pStackTop],P^.pStackBot-P^.pStackTop-32,$AA);
  14. end;
  15.  
  16. function FreeStack : Word;
  17. var P : PLowData; S : Word;
  18. begin
  19.   P := Ptr(DSeg, 10);
  20.   S := P^.pStackTop;
  21.   while Mem[SSeg:S] = $AA do inc(S);
  22.   FreeStack := S-P^.pStackTop;
  23. end;
  24.  
  25. function TPFreeStack : Word;
  26. var P : PLowData;
  27. begin
  28.   P := Ptr(DSeg, 10);
  29.   TPFreeStack := P^.pStackMin-P^.pStackTop;
  30. end;
  31.